/* Copyright 2012 Alejandro Alonso Mayo
This file is part of jmtools.

jmtools is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

jmtools is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with jmtools.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _LOG_H_
#define _LOG_H_

//System headers
#include <string>
#include <fstream>

//Project headers
#include <jmtools/win.h>
#include <jmtools/LogType.h>

namespace JMTools
{
	namespace Logs
	{
#ifdef WIN
		class JMTOOLS_API Log {
#else
		class Log {
#endif
			friend class LogManager;
		private:
		protected:
			std::ofstream file;
			std::string name;
			LogType type;
			bool cmd;
			bool restricted;

			virtual void logMessage(std::string message);
		public:
			//Contructors and Destructors
			Log(std::string name,LogType type,bool cmd,bool restricted);
			virtual ~Log();
			virtual void logMessage(std::string message,LogType type);

			//Gettters and Setters
			std::string getName();

			//Others
	
		};
	}
}
#endif
